/**
 */
package org.mro.grib.model.files.secondEdition.dataRepresentations;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Data Representation Template51</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getMatrixBitmapPresence <em>Matrix Bitmap Presence</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getNumberOfDataValues <em>Number Of Data Values</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getFirstDimension <em>First Dimension</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getSecondDimension <em>Second Dimension</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getFirstDimensionCoordinateValueDefinition <em>First Dimension Coordinate Value Definition</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getNc1 <em>Nc1</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getSecondDimensionCoordinateValueDefinition <em>Second Dimension Coordinate Value Definition</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getNc2 <em>Nc2</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getFirstDimensionPhysicalSignificance <em>First Dimension Physical Significance</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getSecondDimensionPhysicalSignificance <em>Second Dimension Physical Significance</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getFirstDimensionCoefficientsOffset <em>First Dimension Coefficients Offset</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getSecondDimensionCoefficientsOffset <em>Second Dimension Coefficients Offset</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51()
 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Matrix values at grid point \u2013 simple packing' note_1_en='For most templates, details of the packing process are described in Regulation 92.9.4.' note_2_en='This form of representation enables a matrix of values to be depicted at each grid point; the two dimensions of the matrix\r\nmay represent coordinates expressed in terms of two elemental parameters (e.g. direction and frequency for wave\r\nspectra). The numeric values of these coordinates, beyond that of simple subscripts, can be given in a functional form,\r\nor as a collection of explicit numbers.' note_3_en='Some simple coordinate functional forms are tabulated in Code table 5.2. Where a more complex coordinate function\r\napplies, the coordinate values shall be explicitly denoted by the inclusion of the actual set of values rather than the\r\ncoefficients. This shall be indicated by a code figure 0 from Code table 5.2; the number of explicit values coded shall be\r\nequal to the appropriate dimension of the matrix for which values are presented and they shall follow octet 36 in\r\nplace of the coefficients.' note_4_en='Matrix bit maps will be present only if indicated by octet 22. If present, there shall be one bit map for each grid point\r\nwith data values, as defined by the primary bit map in Section 6, each of length (NR x NC) bits: a bit set to 1 will\r\nindicate a data element at the corresponding location within the matrix. Bit maps shall be represented end-to-end,\r\nwithout regard for octet boundaries; the last bit map shall, if necessary, be followed by bits set to zero to fill any\r\npartially used octet.' note_5_en='Matrices restricted to scanning in the +i direction (left to right) and in the \u2013j direction (top to bottom).'"
 * @generated
 */
public interface DataRepresentationTemplate51 extends DataRepresentationTemplate50 {
	/**
	 * Returns the value of the '<em><b>Matrix Bitmap Presence</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Matrix Bitmap Presence</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Matrix Bitmap Presence</em>' attribute.
	 * @see #setMatrixBitmapPresence(byte)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51_MatrixBitmapPresence()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Matrix bit maps presence' description_en='0, no matrix bit maps present; 1\u2013matrix bit maps present'"
	 * @generated
	 */
	byte getMatrixBitmapPresence();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getMatrixBitmapPresence <em>Matrix Bitmap Presence</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Matrix Bitmap Presence</em>' attribute.
	 * @see #getMatrixBitmapPresence()
	 * @generated
	 */
	void setMatrixBitmapPresence(byte value);

	/**
	 * Returns the value of the '<em><b>Number Of Data Values</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Number Of Data Values</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Number Of Data Values</em>' attribute.
	 * @see #setNumberOfDataValues(int)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51_NumberOfDataValues()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Number of data values' description_en='Number of data values encoded in Section 7'"
	 * @generated
	 */
	int getNumberOfDataValues();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getNumberOfDataValues <em>Number Of Data Values</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Number Of Data Values</em>' attribute.
	 * @see #getNumberOfDataValues()
	 * @generated
	 */
	void setNumberOfDataValues(int value);

	/**
	 * Returns the value of the '<em><b>First Dimension</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>First Dimension</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>First Dimension</em>' attribute.
	 * @see #setFirstDimension(short)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51_FirstDimension()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='NR' description_en='First dimension (rows) of each matrix'"
	 * @generated
	 */
	short getFirstDimension();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getFirstDimension <em>First Dimension</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>First Dimension</em>' attribute.
	 * @see #getFirstDimension()
	 * @generated
	 */
	void setFirstDimension(short value);

	/**
	 * Returns the value of the '<em><b>Second Dimension</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Second Dimension</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Second Dimension</em>' attribute.
	 * @see #setSecondDimension(short)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51_SecondDimension()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='NC' description_en='Second dimension (columns) of each matrix'"
	 * @generated
	 */
	short getSecondDimension();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getSecondDimension <em>Second Dimension</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Second Dimension</em>' attribute.
	 * @see #getSecondDimension()
	 * @generated
	 */
	void setSecondDimension(short value);

	/**
	 * Returns the value of the '<em><b>First Dimension Coordinate Value Definition</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>First Dimension Coordinate Value Definition</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>First Dimension Coordinate Value Definition</em>' attribute.
	 * @see #setFirstDimensionCoordinateValueDefinition(byte)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51_FirstDimensionCoordinateValueDefinition()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='First dimension coordinate value definition' description_en='First dimension coordinate value definition (Code table 5.2)'"
	 * @generated
	 */
	byte getFirstDimensionCoordinateValueDefinition();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getFirstDimensionCoordinateValueDefinition <em>First Dimension Coordinate Value Definition</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>First Dimension Coordinate Value Definition</em>' attribute.
	 * @see #getFirstDimensionCoordinateValueDefinition()
	 * @generated
	 */
	void setFirstDimensionCoordinateValueDefinition(byte value);

	/**
	 * Returns the value of the '<em><b>Nc1</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Nc1</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Nc1</em>' attribute.
	 * @see #setNc1(byte)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51_Nc1()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='NC1' description_en='Number of coefficients or values used to specify first dimension coordinate function'"
	 * @generated
	 */
	byte getNc1();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getNc1 <em>Nc1</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Nc1</em>' attribute.
	 * @see #getNc1()
	 * @generated
	 */
	void setNc1(byte value);

	/**
	 * Returns the value of the '<em><b>Second Dimension Coordinate Value Definition</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Second Dimension Coordinate Value Definition</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Second Dimension Coordinate Value Definition</em>' attribute.
	 * @see #setSecondDimensionCoordinateValueDefinition(byte)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51_SecondDimensionCoordinateValueDefinition()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Second dimension coordinate value definition' description_en='Second dimension coordinate value definition (Code table 5.2)'"
	 * @generated
	 */
	byte getSecondDimensionCoordinateValueDefinition();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getSecondDimensionCoordinateValueDefinition <em>Second Dimension Coordinate Value Definition</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Second Dimension Coordinate Value Definition</em>' attribute.
	 * @see #getSecondDimensionCoordinateValueDefinition()
	 * @generated
	 */
	void setSecondDimensionCoordinateValueDefinition(byte value);

	/**
	 * Returns the value of the '<em><b>Nc2</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Nc2</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Nc2</em>' attribute.
	 * @see #setNc2(byte)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51_Nc2()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='NC2' description_en='Number of coefficients or values used to specify second dimension coordinate function'"
	 * @generated
	 */
	byte getNc2();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getNc2 <em>Nc2</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Nc2</em>' attribute.
	 * @see #getNc2()
	 * @generated
	 */
	void setNc2(byte value);

	/**
	 * Returns the value of the '<em><b>First Dimension Physical Significance</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>First Dimension Physical Significance</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>First Dimension Physical Significance</em>' attribute.
	 * @see #setFirstDimensionPhysicalSignificance(byte)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51_FirstDimensionPhysicalSignificance()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='First dimension physical significance' description_en='First dimension physical significance (Code table 5.3)'"
	 * @generated
	 */
	byte getFirstDimensionPhysicalSignificance();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getFirstDimensionPhysicalSignificance <em>First Dimension Physical Significance</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>First Dimension Physical Significance</em>' attribute.
	 * @see #getFirstDimensionPhysicalSignificance()
	 * @generated
	 */
	void setFirstDimensionPhysicalSignificance(byte value);

	/**
	 * Returns the value of the '<em><b>Second Dimension Physical Significance</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Second Dimension Physical Significance</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Second Dimension Physical Significance</em>' attribute.
	 * @see #setSecondDimensionPhysicalSignificance(byte)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51_SecondDimensionPhysicalSignificance()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Second dimension physical significance' description_en='Second dimension physical significance (Code table 5.3)'"
	 * @generated
	 */
	byte getSecondDimensionPhysicalSignificance();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getSecondDimensionPhysicalSignificance <em>Second Dimension Physical Significance</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Second Dimension Physical Significance</em>' attribute.
	 * @see #getSecondDimensionPhysicalSignificance()
	 * @generated
	 */
	void setSecondDimensionPhysicalSignificance(byte value);

	/**
	 * Returns the value of the '<em><b>First Dimension Coefficients Offset</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>First Dimension Coefficients Offset</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>First Dimension Coefficients Offset</em>' attribute.
	 * @see #setFirstDimensionCoefficientsOffset(long)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51_FirstDimensionCoefficientsOffset()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Offset of coefficients to define first dimension ' description_en='Offset of coefficients to define first dimension coordinate values in functional form,\r\nor the explicit coordinate values (IEEE 32-bit floating-point value)'"
	 * @generated
	 */
	long getFirstDimensionCoefficientsOffset();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getFirstDimensionCoefficientsOffset <em>First Dimension Coefficients Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>First Dimension Coefficients Offset</em>' attribute.
	 * @see #getFirstDimensionCoefficientsOffset()
	 * @generated
	 */
	void setFirstDimensionCoefficientsOffset(long value);

	/**
	 * Returns the value of the '<em><b>Second Dimension Coefficients Offset</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Second Dimension Coefficients Offset</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Second Dimension Coefficients Offset</em>' attribute.
	 * @see #setSecondDimensionCoefficientsOffset(long)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate51_SecondDimensionCoefficientsOffset()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Offset of coefficients to define second dimension ' description_en='Offset of coefficients to define second dimension coordinate values in functional form,\r\nor the explicit coordinate values (IEEE 32-bit floating-point value)'"
	 * @generated
	 */
	long getSecondDimensionCoefficientsOffset();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate51#getSecondDimensionCoefficientsOffset <em>Second Dimension Coefficients Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Second Dimension Coefficients Offset</em>' attribute.
	 * @see #getSecondDimensionCoefficientsOffset()
	 * @generated
	 */
	void setSecondDimensionCoefficientsOffset(long value);

} // DataRepresentationTemplate51
